[アップデート] EC2のDescribeRegionsで無効化リージョンも含めた一覧が取得できるようになりました
こんにちは。サービスグループの武田です。
今年の4月に香港リージョンが追加されました。そして、この香港リージョンからは有効化がオプトインになりました。
これまでリージョンの有効/無効といったステータスは、マネジメントコンソール上からは確認できたのですが、AWS CLIなどでは確認できませんでした。今回EC2のAPIに、これらのステータスを確認できるアップデートがありましたのでさっそく試してみました。
環境
AWS CLIを利用します。アップデートが必要なため、古いバージョンの場合は必ずアップデートを行ってください。
$ aws --version aws-cli/1.16.205 Python/3.7.0 Darwin/18.6.0 botocore/1.12.195 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.5 BuildVersion: 18F132
有効リージョンの一覧取得
これまでどおりec2 describe-regions
を実行すればOKです。OptInStatus
がリージョンの状態ですね。OptInStatusは次の3つのステータスが定義されています。
- opt-in-not-required
- オプトイン不要(有効)
- opted-in
- オプトインしている(有効)
- not-opted-in
- オプトインしていない(無効)
$ aws ec2 describe-regions { "Regions": [ { "Endpoint": "ec2.eu-north-1.amazonaws.com", "RegionName": "eu-north-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ap-south-1.amazonaws.com", "RegionName": "ap-south-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.eu-west-3.amazonaws.com", "RegionName": "eu-west-3", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.eu-west-2.amazonaws.com", "RegionName": "eu-west-2", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.eu-west-1.amazonaws.com", "RegionName": "eu-west-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ap-northeast-2.amazonaws.com", "RegionName": "ap-northeast-2", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ap-northeast-1.amazonaws.com", "RegionName": "ap-northeast-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.sa-east-1.amazonaws.com", "RegionName": "sa-east-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ca-central-1.amazonaws.com", "RegionName": "ca-central-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ap-southeast-1.amazonaws.com", "RegionName": "ap-southeast-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.ap-southeast-2.amazonaws.com", "RegionName": "ap-southeast-2", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.eu-central-1.amazonaws.com", "RegionName": "eu-central-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.us-east-1.amazonaws.com", "RegionName": "us-east-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.us-east-2.amazonaws.com", "RegionName": "us-east-2", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.us-west-1.amazonaws.com", "RegionName": "us-west-1", "OptInStatus": "opt-in-not-required" }, { "Endpoint": "ec2.us-west-2.amazonaws.com", "RegionName": "us-west-2", "OptInStatus": "opt-in-not-required" } ] }
なお、単純にリージョン名の一覧のみが欲しいのであれば次のようにqueryを書けばOKです。リストが長くなってしまうので、以降はこのクエリを付けておきます。
$ aws ec2 describe-regions --query 'Regions[].RegionName'
無効リージョンも含めた一覧取得
無効リージョンを取得したい場合は--all-regions
オプションを付与します。例として次のようにコマンドを実行します。ap-east-1
が含まれていることが確認できます。なお、大阪ローカルリージョンは含まれていませんね。
$ aws ec2 describe-regions --all-regions --query 'Regions[].RegionName' [ "eu-north-1", "ap-south-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-2", "ap-northeast-1", "sa-east-1", "ca-central-1", "ap-east-1", "ap-southeast-1", "ap-southeast-2", "eu-central-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2" ]
無効リージョンのみ一覧取得
全リージョンから無効リージョンのみに絞ります。絞り込みは--filters
オプションを使用します。
$ aws ec2 describe-regions --all-regions --filters 'Name=opt-in-status,Values=not-opted-in' --query 'Regions[].RegionName' [ "ap-east-1" ]
対象リージョンが有効か無効かを調べる
次のように--region-name
オプションを使用することで指定したリージョン情報のみ取得できます。OptInStatusがopt-in-not-requiredかopted-inなら有効、not-opted-inなら無効という判定ができます。
$ aws ec2 describe-regions --all-regions --region-name ap-east-1 --query 'Regions[].OptInStatus' [ "not-opted-in" ]
まとめ
社内では待ち望んでいた声も多く、待望のアップデートがついに来ました!ぜひ便利に使っていきましょう。